
#include "lclk_dyn.h"
#include <memory>

#include "logical_clock.h"

using tsync::LogicalClock;

struct LclkContext {
    std::unique_ptr<LclkDyn> dyn;   // 动态内存承载3个参数
    LogicalClock lc;                // 逻辑时钟本体
    uint32_t tau_ns{0};             // 控制周期（用于相位取模）

    LclkContext(uint32_t tau_ns_)
      : dyn(std::make_unique<LclkDyn>()),
        lc(/*init_offset_ns=*/0, /*enable_zero_base=*/true), // 默认启动 rebase0
        tau_ns(tau_ns_)
    {
        // 可选：再显式rebase一次
        lc.rebase_to_now();
    }
};
